package com.itfenghuang.day02;

public class A02_Interface {
    public static void main(String[] args) {
        /**
         *
         * 1.概述
         *   接口的意义:
         *            制定规则;
         *            提高扩展性;
         *
         * 2.接口的格式
         *      interface   接口名{}  (接口名遵循命名规范)
         * 3.接口的使用
         *  类:    创建对象,通过对象名.调用成员变量和成员方法
         *  接口:  就是让类去实现它   如果一个类实现接口:  implements
         *      class  类名  implements 接口名{}
         * 4.接口自身的特点:
         *      接口不能实例化(创建对象)
         *      普通类实现接口,必须重写该接口的所有的抽象方法,如果是抽象方法,可以不重写
         *5.接口中的成员的特点:
         *      成员变量
         *          默认被public final static 修饰的,并且只能被这些修饰
         *      成员方法
         *          抽象方法: 默认被public  abstract 修饰的
         *          jdk8以前, 只能有抽象方法
         *          jdk8新特性: 接口中可以有静态方法,也有默认方法  default
         *          jdk9新特性: 接口中可以有私有方法  被private修饰的方法
         *6.单继承,不可以多继承,可以多层继承,不能循环继承
         *      接口和类之间关系
         *          一个类可以实现多个接口
         *      接口和接口之间关系
         *          继承关系,接口可以多继承
         *
         */
        A a = new A();
        a.show();
        a.test();
//      类怎么调用静态方法,  接口名.方法名
        Inter.print();



    }
}

interface Inter extends Inter1,Inter2{
    public String name="";

    public abstract void show();

    public static void  print(){
        System.out.println("静态方法");
    }

    public default void test(){
        System.out.println("默认方法");
    }
}
interface Inter1{}
interface Inter2{}

class A implements  Inter,Inter1{

    @Override
    public void show() {
        System.out.println("展示");
    }

}
abstract class B implements Inter{}









